/**
 * 
 */
package com.dalonedrau.graph;

/**
 * @author Donald
 *
 */
public interface Graph {
	/**
	 * Returns the number of active and inactive nodes present in the graph.
	 * @return <code>int</code>
	 */
	int getNumberOfNodes();
	/**
	 * Gets all edges from a specific node.
	 * @param index the node index
	 * @return {@link GraphEdge}[]
	 * @throws Exception if the node was never added to the graph
	 */
	GraphEdge[] getEdgesFromNode(int index) throws Exception;
	/**
	 * Gets the node at the given index. If no node was added at that index,
	 * <code>null</code> is returned.
	 * @param index the index
	 * @return {@link GraphNode}
	 */
	GraphNode getNode(int index);
}
